package com.micro.ai.template.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.micro.ai.template.dto.request.TemplateCreateRequest;
import com.micro.ai.template.dto.request.TemplateUpdateRequest;
import com.micro.ai.template.dto.response.TemplateDTO;
import com.micro.ai.template.entity.Template;

/**
 * 模板服务接口
 *
 * @author micro-ai
 * @since 0.0.1
 */
public interface TemplateService extends IService<Template> {

    /**
     * 创建模板
     */
    TemplateDTO createTemplate(String userId, String tenantId, TemplateCreateRequest request);

    /**
     * 更新模板
     */
    TemplateDTO updateTemplate(String userId, String tenantId, String templateId, TemplateUpdateRequest request);

    /**
     * 删除模板
     */
    void deleteTemplate(String userId, String tenantId, String templateId);

    /**
     * 获取模板详情
     */
    TemplateDTO getTemplateById(String templateId);

    /**
     * 分页查询模板
     */
    Page<TemplateDTO> listTemplates(String tenantId, Integer pageNum, Integer pageSize, 
                                    String categoryId, String templateName, String status);

    /**
     * 查询我的模板
     */
    Page<TemplateDTO> getMyTemplates(String userId, String tenantId, Integer pageNum, Integer pageSize);

    /**
     * 更新模板状态
     */
    void updateTemplateStatus(String userId, String tenantId, String templateId, Boolean enabled);

    /**
     * 克隆模板
     */
    TemplateDTO cloneTemplate(String userId, String tenantId, String templateId);
}
